1、PCB外观检查机系统的总体结构
PCB在线检测系统结构复杂,其传动控制设备、电气控制系统和摄像机必须在计算机的精确控制下,才能协调处理工作,完成复杂的检测和分拣任务。基于机器视觉的PCB在线检测设备的结构如图1所示。
系统主要分为运动控制、图像采集和图像处理部分。图像采集部分是整个系统的重要组成部分。摄像机和镜头在机器视觉中相当于人的眼睛,负责拍摄对象的图像。图像采集部分是PCB检测系统的重要环节,也是检测处理的基础。PCB检测系统强调检测的速度和精度,所以需要图像采集部分及时、准确地提供清晰的图像。
2 、图像采集系统的硬件结构
1)图像采集系统工作原理
当系统上电后,MCU自动检测PCB载物台是否复位到起点。此过程主要有两个光纤传感器和伺服电机完成。两个传感器分别安装在四顾电机轨道的起点,即复位点和轨道端点。起复位,停止和电机反转的功能。上电后MCU检测到sesorl(复位点或起点处)无效,则调用电机反转程序,使PCB载物台回到起点位置,同时串口向PC机发送彩图无效信号。然后MCU继续判断是否有按键按下,如果有按键按下,电机开始正转,同时串口向PC机发送彩图有效信号。此过程也就是PCB线扫描过程,完成图像的采集。此过程电机经历三个阶段:加速阶段,匀速彩图阶段和减速停止阶段。在电机正转过程中,从七点开始,MCU通过特有的捕获比较单元(CCU6)来对伺服电机编码器反馈回来的脉冲计数,但计数值达到采图有效数值时,串口向PC发送采图开始信号,此时线阵CCD开始对PCB进行图像采集。在电机减速正转到轨道端点的传感器senor2处时,电机停止并马上反转回到起点处,此过程串口向PC机发送采图无效信号。至此一个完整的检测过程完整。MCU继续检测是否有按键按下来进行下一次检测。其中串口发送的采集有效和开始信号可以有效地避免误触发。CCD采集到的图像信号由Camrelink接口送至图像采集卡再由PC做进一步的图像处理。
2)传感器与按钮的接收与检测
采用光耦隔离技术,可以实现电路间的光电隔离,即使输入信号能无阻通过,且防止输出信号反馈到输入端,有利地抑制尖峰脉冲和各种噪声的干扰,工作稳定,无触点,使用寿命长,传输效率高。为实时检测到反馈的转镜转速信号,本设计中采用了高速光耦ACPL-072L,传输速率可高达25 MBd,并且外围电路简单,如图3所示。
本设计利用XC164CS外设中含有捕获/比较单元CC25端口,将光耦传输信号作为外部中断信号来触发XC164,实现高速精确地传感定位与按钮检测。
3)CCD摄像机系统
该手动PCB外观检查机图像采集系统采用NED彩虹系列的3CCD彩色线扫描相机NUCLi7300。该相机应用广泛,可以进行以前黑白相机无法进行的颜色差异检测。外部接口为高速串行接口(Camera Link),可以很方便的与采集卡连接,也可以很方便的设置增益和偏移量,并具有修正RGB线延迟的功能。像素数为7 300x3 Line,像素大小为10x10 μm,数据速率60MHz,最短扫描速率7.6kHz。图4为本系统所用的连续线扫描速率模型时序图。
系统中的图像采集卡采用的是Matrox公司的SoliosXCL-SU74,该卡自带处理器处理两个独立基模式或一个中模式Camera Link配置、66 MHz采集速率、64 MB缓冲器、可以采集面阵和线阵摄像头,并具有多种采集模式。
目前市面上的影像检测系统大多采用面扫描(Areascan)的摄影机进行影像的采集及分析,但是由于该PCB外观检查机检查的PCB产品尺寸范围较大——50 mmx50mm~330mmx250 mm,精度的要求达亚像素级,面扫描摄影机的分辨率及取像速度无法满足这些要求,所以系统选取的是线扫描CCD。但是线扫描的检测系统必须利用运动速度才能取得面积影相,即被测PCB运动到相机视场时同过硬件发送触发信号给相机开始采集,故将采集卡的采集模式设置为硬件触发同步采集,并分配最大内存64 M。CCD与采集卡连接示意图如图5所示。
3、 软件系统组成
该图像采集系统的软件采用的开发语言是C#,软件开发包是AeTIveMil9.0组件。
Matrox有着丰富的程序包-图像处理和模式识别库(MIL)和MIL的子库MIL-LITE(基本图像处理)。MIL是一个硬件独立的32位图像处理库,利用了Intel的MMX的多媒体图形加速功能对图像处理程序库进行了优化,可以处理二进制、灰度或彩色图像,它是独立于硬件平台的。并且对于快速Windows应用程序开发,MIL捆绑了AcTIveMIL。AeTIveMIL是一个管理图像采集,处理,分析,显示和存档的动态控件的集合。AeTI-veMIL完全集成到Microsoft Visual Basic、Visual C++和.net快速应用程序开发环境中。该图像采集系统选用的是AetiveMil控件库,本控件库可以实现所有MIL的所有功能,而且由于使用了ActiveX控件,所以很大程度上降低了程序设计的难度,缩短了软件开发周期,提高了应用系统的稳定性。[page]
3.1 基于AclivrMil的图像采集程序
对Matrox图像采集进行图像采集二次开发的通用软件结构如图6所示。
图像采集程序的基本思路是:
1)打开通信通道,即确定一个应用对象(Application),并对每个应用对象创建一个或多个系统对象(System)。
2)初始化硬件资源,即为每个系统对象分配数据缓存(Data Buffer)、数据采集器(Digitizer)和数据显示(Display)对象。
3)启动采集过程,即将图像读入数据缓存,并将缓存赋值给数组,通过对数组的处理实现对图像的处理,图像数据与数据显示相关联后就可以通过显示控件或窗体显示预处理后的结果。
AetiveMIL可以让开发者快速简单地将一个图像应用程序和Windows用户界面结合起来。应用程序开发包含拖动和滚动工具放置以及加标点和单击配置,充分地减少代码量。在.net framework3.0卡发环境下,安装MIL开发包并正确配置后,Application、System、Image、ImageProcess、Display等组件将自动添加到工具栏。
开发者将所需用的控件拖拽到图像采集窗体上,一个Application,对应于单镜头手动外观机,一个System,单窗体显示——一个Disp-laly,为了提高CPU使用率应启用双缓存异步采集——两个ImageBuffer,及一个ImageProcess。
3.2 双缓存异步采集思想
Matrox MeteorII图像采集卡支持同步和异步两种采集方式。
同步采集方式适用于连续采集显示图像而不做运算处理的情况,这是因为同步采集方式下,在每次采集图像之前,CPU都向采集卡发送采集同步信号,然后等待采集结束,所以在采集过程中CPU由于得不到图像数据而只能处于等待状态。由于CCD仅采集一帧图像就需要40 ms左右,这与人的视觉滞留大致相当,所以在同步方式下无法保证采集和处理在40 ms内完成,也就无法达到实时处理的要求。
异步采集方式下,采集工作和计算机对图像的处理工作可以同时进行,即当CPU处理当前帧的图像时,CCD摄像机可以进行下一帧的图像采集。因此,在程序编制时,需要一个缓存机制用来缓存当前已采集完成的图像和缓存CCD摄像机将要采集或正在采集的图像,从而实现图像采集与处理的并行工作。显然,利用这种双缓存采集方法既可以降低对硬件系统的要求,还可以大大提高系统的处理速度,满足实时处理的要求。
3.3 图像采集代码实现
3.4用GDI+实现图像拼接
4、 图像采集实例
结果表明,双缓存异步采集系统的图像采集速度显著提高,并且由于利用ActiveX组件缩短了开发周期,降低了开发的人力成本。且提高了图像采集的质量。采集一幅7300x10000的图像并实时拼接仅需1.3 s,不存在掉帧现象,无损拼接拼接。计算图像缓存区大小的公式为MemSize=ImageWidthxlmageHeightxFrames,实验还表明,采用同步采集方式采集7 300x1 000,每像素8 bits的1帧图像大致需要6Gb的缓存空间;采用异步双缓存采集方式采集相同分辨率的图像只需要不到32 mb的缓存就可以连续不问断地保存图像。由此可见,使用异步双缓存采集方式不仅可以节约系统资源,而且可以获得更高效更好的采集效果。
5、 结论
双缓存技术近年在图像显示领域得到广泛应用,该设计首次将双缓存技术与异步采集结合应用在PCB手动外观检查机的图像采集系统中。利用Matrox公司的SoliosXCL-SU74,使用异步双缓存采集方法可以实现PCB外观机的实时连续采集(本实验设为每秒采集10帧图像,每帧图像宽为7 300,高为1 000)的要求,并利用GDI+库实现图像实时无损拼接,该方案较传统的图像采集效率更高,对硬件的要求更低,更适合PCB外观机等大数据的图像采集系统。